package GUI;

import java.awt.Dimension;
import java.util.List;
import java.util.Random;

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;

import Aktorzy.Farmaceuta;
import Baza.BazaDanych;
import Baza.Konfiguracja;

public class WyswietlPracownikow {
	Konfiguracja konfiguracja = new Konfiguracja();
	
	public WyswietlPracownikow(){
		wypiszPracownikowPanel();
	}
	
	public JPanel wypiszPracownikowPanel(){
        final JPanel pracownicyPanel = new JPanel();        
        JScrollPane listaScrollPane = getLista();
        
        pracownicyPanel.add(listaScrollPane);
        return pracownicyPanel;      
	}
	
	private JScrollPane getLista(){
		DefaultTableModel model = new DefaultTableModel();
		model.addColumn("ID");
		model.addColumn(konfiguracja.getNameField());
		model.addColumn(konfiguracja.getSurnameField());
		model.addColumn(konfiguracja.getJobField());
		model.addColumn(konfiguracja.getStatusField());
		wypiszListe(model);
		
		JTable table = new JTable(model);
		table.setEnabled(false);
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        table.doLayout(); 
        
        JScrollPane listaScrollPane = new JScrollPane(table);
        listaScrollPane.setPreferredSize(new Dimension(1024, 200));
        
        return listaScrollPane;
	}
	
	private void wypiszListe(DefaultTableModel model){
		Random rLosuj = new Random();
		Boolean bLosuj = null;
		BazaDanych database = new BazaDanych();
		String status = konfiguracja.getUnavailable();
		List<Farmaceuta> pracownicy = database.selectFarmaceuta();
        for(int i=0;i<pracownicy.size();i++){
        	bLosuj = rLosuj.nextBoolean();
        	if(bLosuj==true){
        		status = konfiguracja.getAvailable();
        	}else{
        		status = konfiguracja.getUnavailable();
        	}
        	Object[] rowData = {pracownicy.get(i).getId(), pracownicy.get(i).getImie(), pracownicy.get(i).getNazwisko(), pracownicy.get(i).getStanowisko(), status};
        	model.insertRow(i, rowData);
        }
        database.closeConnection();
	}
}
